import sys
import os
# 添加当前目录到Python路径
sys.path.append(os.path.dirname(os.path.abspath(__file__)))

import numpy as np
from scipy.integrate import odeint
import pendulum_config

def generate_simulated_data(k_true, theta0, omega0, t_max, noise_level=0.05):
    """
    生成模拟实验数据
    k_true: 真实的阻尼系数
    theta0, omega0: 初始条件
    t_max: 时间长度
    noise_level: 噪声水平
    """
    # 时间点
    t = np.linspace(0, t_max, 200)
    
    # 真实解
    y0 = [theta0, omega0]
    sol_true = odeint(pendulum_config.pendulum_eq, y0, t, args=(k_true,))
    theta_true = sol_true[:, 0]
    
    # 添加噪声模拟实验误差
    noise = np.random.normal(0, noise_level, len(t))
    theta_noisy = theta_true + noise
    
    return t, theta_noisy, theta_true